h(X) → g(X, X)
g(a, X) → f(b, X)
f(X, X) → h(a)
a → b
h: {1}
g: {1}
a: empty set
f: {1}
b: empty set
↳ CSR
↳ CSDependencyPairsProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
h(X) → g(X, X)
g(a, X) → f(b, X)
f(X, X) → h(a)
a → b
h: {1}
g: {1}
a: empty set
f: {1}
b: empty set
Using Improved CS-DPs we result in the following initial Q-CSDP problem.
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
H(X) → G(X, X)
G(a, X) → F(b, X)
F(X, X) → H(a)
F(X, X) → A
h(X) → g(X, X)
g(a, X) → f(b, X)
f(X, X) → h(a)
a → b
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ QCSDP
↳ ConvertedToQDPProblemProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
G(a, X) → F(b, X)
F(X, X) → H(a)
H(X) → G(X, X)
h(X) → g(X, X)
g(a, X) → f(b, X)
f(X, X) → h(a)
a → b
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ QCSDP
↳ ConvertedToQDPProblemProof
↳ QDP
↳ NonTerminationProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
F(X, X) → H(a)
G(a, X) → F(b, X)
H(X) → G(X, X)
h(X) → g(X, X)
g(a, X) → f(b, X)
f(X, X) → h(a)
a → b
F(X, X) → H(a)
G(a, X) → F(b, X)
H(X) → G(X, X)
h(X) → g(X, X)
g(a, X) → f(b, X)
f(X, X) → h(a)
a → b
↳ CSR
↳ CSDependencyPairsProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ Trivial-Transformation
mark(h(x1)) → hActive(mark(x1))
hActive(x1) → h(x1)
mark(g(x1, x2)) → gActive(mark(x1), x2)
gActive(x1, x2) → g(x1, x2)
mark(f(x1, x2)) → fActive(mark(x1), x2)
fActive(x1, x2) → f(x1, x2)
mark(a) → aActive
aActive → a
mark(b) → b
hActive(X) → gActive(mark(X), X)
gActive(a, X) → fActive(b, X)
fActive(X, X) → hActive(aActive)
aActive → b
MARK(f(x1, x2)) → MARK(x1)
MARK(g(x1, x2)) → GACTIVE(mark(x1), x2)
HACTIVE(X) → GACTIVE(mark(X), X)
MARK(h(x1)) → MARK(x1)
MARK(h(x1)) → HACTIVE(mark(x1))
FACTIVE(X, X) → HACTIVE(aActive)
GACTIVE(a, X) → FACTIVE(b, X)
FACTIVE(X, X) → AACTIVE
MARK(f(x1, x2)) → FACTIVE(mark(x1), x2)
HACTIVE(X) → MARK(X)
MARK(a) → AACTIVE
MARK(g(x1, x2)) → MARK(x1)
mark(h(x1)) → hActive(mark(x1))
hActive(x1) → h(x1)
mark(g(x1, x2)) → gActive(mark(x1), x2)
gActive(x1, x2) → g(x1, x2)
mark(f(x1, x2)) → fActive(mark(x1), x2)
fActive(x1, x2) → f(x1, x2)
mark(a) → aActive
aActive → a
mark(b) → b
hActive(X) → gActive(mark(X), X)
gActive(a, X) → fActive(b, X)
fActive(X, X) → hActive(aActive)
aActive → b
↳ CSR
↳ CSDependencyPairsProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ Trivial-Transformation
MARK(f(x1, x2)) → MARK(x1)
MARK(g(x1, x2)) → GACTIVE(mark(x1), x2)
HACTIVE(X) → GACTIVE(mark(X), X)
MARK(h(x1)) → MARK(x1)
MARK(h(x1)) → HACTIVE(mark(x1))
FACTIVE(X, X) → HACTIVE(aActive)
GACTIVE(a, X) → FACTIVE(b, X)
FACTIVE(X, X) → AACTIVE
MARK(f(x1, x2)) → FACTIVE(mark(x1), x2)
HACTIVE(X) → MARK(X)
MARK(a) → AACTIVE
MARK(g(x1, x2)) → MARK(x1)
mark(h(x1)) → hActive(mark(x1))
hActive(x1) → h(x1)
mark(g(x1, x2)) → gActive(mark(x1), x2)
gActive(x1, x2) → g(x1, x2)
mark(f(x1, x2)) → fActive(mark(x1), x2)
fActive(x1, x2) → f(x1, x2)
mark(a) → aActive
aActive → a
mark(b) → b
hActive(X) → gActive(mark(X), X)
gActive(a, X) → fActive(b, X)
fActive(X, X) → hActive(aActive)
aActive → b
↳ CSR
↳ CSDependencyPairsProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
MARK(f(x1, x2)) → MARK(x1)
MARK(g(x1, x2)) → GACTIVE(mark(x1), x2)
HACTIVE(X) → GACTIVE(mark(X), X)
MARK(h(x1)) → MARK(x1)
MARK(h(x1)) → HACTIVE(mark(x1))
FACTIVE(X, X) → HACTIVE(aActive)
GACTIVE(a, X) → FACTIVE(b, X)
MARK(f(x1, x2)) → FACTIVE(mark(x1), x2)
MARK(g(x1, x2)) → MARK(x1)
HACTIVE(X) → MARK(X)
mark(h(x1)) → hActive(mark(x1))
hActive(x1) → h(x1)
mark(g(x1, x2)) → gActive(mark(x1), x2)
gActive(x1, x2) → g(x1, x2)
mark(f(x1, x2)) → fActive(mark(x1), x2)
fActive(x1, x2) → f(x1, x2)
mark(a) → aActive
aActive → a
mark(b) → b
hActive(X) → gActive(mark(X), X)
gActive(a, X) → fActive(b, X)
fActive(X, X) → hActive(aActive)
aActive → b
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(f(x1, x2)) → MARK(x1)
MARK(g(x1, x2)) → GACTIVE(mark(x1), x2)
MARK(h(x1)) → MARK(x1)
MARK(h(x1)) → HACTIVE(mark(x1))
MARK(f(x1, x2)) → FACTIVE(mark(x1), x2)
MARK(g(x1, x2)) → MARK(x1)
Used ordering: Polynomial interpretation [25]:
HACTIVE(X) → GACTIVE(mark(X), X)
FACTIVE(X, X) → HACTIVE(aActive)
GACTIVE(a, X) → FACTIVE(b, X)
HACTIVE(X) → MARK(X)
POL(FACTIVE(x1, x2)) = 0
POL(GACTIVE(x1, x2)) = 0
POL(HACTIVE(x1)) = x1
POL(MARK(x1)) = x1
POL(a) = 0
POL(aActive) = 0
POL(b) = 0
POL(f(x1, x2)) = 1 + x1
POL(fActive(x1, x2)) = 1 + x1
POL(g(x1, x2)) = 1 + x1
POL(gActive(x1, x2)) = 1 + x1
POL(h(x1)) = 1 + x1
POL(hActive(x1)) = 1 + x1
POL(mark(x1)) = x1
mark(f(x1, x2)) → fActive(mark(x1), x2)
gActive(x1, x2) → g(x1, x2)
mark(a) → aActive
fActive(x1, x2) → f(x1, x2)
mark(b) → b
aActive → a
gActive(a, X) → fActive(b, X)
fActive(X, X) → hActive(aActive)
hActive(X) → gActive(mark(X), X)
mark(h(x1)) → hActive(mark(x1))
mark(g(x1, x2)) → gActive(mark(x1), x2)
hActive(x1) → h(x1)
aActive → b
↳ CSR
↳ CSDependencyPairsProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ Trivial-Transformation
HACTIVE(X) → GACTIVE(mark(X), X)
FACTIVE(X, X) → HACTIVE(aActive)
GACTIVE(a, X) → FACTIVE(b, X)
HACTIVE(X) → MARK(X)
mark(h(x1)) → hActive(mark(x1))
hActive(x1) → h(x1)
mark(g(x1, x2)) → gActive(mark(x1), x2)
gActive(x1, x2) → g(x1, x2)
mark(f(x1, x2)) → fActive(mark(x1), x2)
fActive(x1, x2) → f(x1, x2)
mark(a) → aActive
aActive → a
mark(b) → b
hActive(X) → gActive(mark(X), X)
gActive(a, X) → fActive(b, X)
fActive(X, X) → hActive(aActive)
aActive → b
↳ CSR
↳ CSDependencyPairsProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Trivial-Transformation
HACTIVE(X) → GACTIVE(mark(X), X)
FACTIVE(X, X) → HACTIVE(aActive)
GACTIVE(a, X) → FACTIVE(b, X)
mark(h(x1)) → hActive(mark(x1))
hActive(x1) → h(x1)
mark(g(x1, x2)) → gActive(mark(x1), x2)
gActive(x1, x2) → g(x1, x2)
mark(f(x1, x2)) → fActive(mark(x1), x2)
fActive(x1, x2) → f(x1, x2)
mark(a) → aActive
aActive → a
mark(b) → b
hActive(X) → gActive(mark(X), X)
gActive(a, X) → fActive(b, X)
fActive(X, X) → hActive(aActive)
aActive → b
↳ CSR
↳ CSDependencyPairsProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ DependencyPairsProof
h(X) → g(X, X)
g(a, X) → f(b, X)
f(X, X) → h(a)
a → b
F(X, X) → H(a)
G(a, X) → F(b, X)
F(X, X) → A
H(X) → G(X, X)
h(X) → g(X, X)
g(a, X) → f(b, X)
f(X, X) → h(a)
a → b
↳ CSR
↳ CSDependencyPairsProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
F(X, X) → H(a)
G(a, X) → F(b, X)
F(X, X) → A
H(X) → G(X, X)
h(X) → g(X, X)
g(a, X) → f(b, X)
f(X, X) → h(a)
a → b
↳ CSR
↳ CSDependencyPairsProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
F(X, X) → H(a)
G(a, X) → F(b, X)
H(X) → G(X, X)
h(X) → g(X, X)
g(a, X) → f(b, X)
f(X, X) → h(a)
a → b